package com.kehutong.charge.service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.coraframework.inject.ImplementedBy;
import org.coraframework.json.JSONObject;
import org.coraframework.orm.jdbc.Page;
import com.kehutong.charge.entity.ChargeArrears;
import com.kehutong.charge.entity.ChargeArrearsConfig;
import com.kehutong.charge.service.impl.ChargeArrearsServiceImpl;
import com.kehutong.charge.vo.ChargeBillItemsVO;
import com.kehutong.charge.vo.FeeMsgDetailVO;
import com.kehutong.common.util.Token;

/**
 * @program: kht
 * @description: 欠费服务接口
 * @author: joneron
 * @create: 2021/7/2
 **/
@ImplementedBy(ChargeArrearsServiceImpl.class)
public interface ChargeArrearsService extends BaseService<ChargeArrears>{

    /**
     * 统计接口
     * @param jsonObject
     * @return
     * @throws Exception
     */
    Object statistPage(JSONObject jsonObject) ;

    Object findDetailPage(JSONObject jsonObject) ;

    void statistPageExport(HttpServletRequest req, HttpServletResponse resp, JSONObject jsonObject);

    void pageExport(HttpServletRequest req, HttpServletResponse resp, JSONObject jsonObject);

    Object configSave(ChargeArrearsConfig entity, Token token) throws Exception;

    Object configUpdate(ChargeArrearsConfig entity);

    Object configDeleteById(String id);

    Object configPage(JSONObject jsonObject);

    /**
     * copy findCommunityPagek接口，修改了默认时间为全部
     * @param jsonObject
     * @return
     */
    Page<ChargeBillItemsVO> findCommunityPage(JSONObject jsonObject);

    Object residentStatistPage(JSONObject jsonObject, Token token) throws Exception;

    Object residentDetailsList(JSONObject jsonObject);

    Object itemDetailsList(JSONObject jsonObject);

    FeeMsgDetailVO getFeeMsgDetail(JSONObject jsonObject) throws Exception;

    Object totalUserArrears(JSONObject jsonObject);

    Object loadUrgingOrganizeTree(String communityNo);

    void batchUrgingByResidentIds(JSONObject jsonObject, Token token) throws Exception;

}
